package com.ten.member.service;

import com.baomidou.mybatisplus.core.metadata.IPage;

import com.ten.common.core.entity.TbMember;
import com.ten.common.core.vo.Result;
import com.ten.member.vo.MemberUpdateVo;
import com.ten.member.vo.MemberVo;

/**
 * @author ：Wqw
 * @date ：Created in 2022/12/10 0:28
 * @description：会员的service层
 * @modified By：
 * @version:
 */
public interface TbMemberService {
    /**
     * 查询会员列表,模糊查询,分页
     * page 页码
     * limit 每页显示行数
     * MemberVo 条件类 用来封装模糊查询和分页
     */
    public Result<IPage<TbMember>> getMemberByPage(Integer page, Integer limit, MemberVo memberVo);

    /**
     * 修改会员信息
     * MemberUpdateVo 条件类
     */
    public Result<TbMember> updateMemberInfo(MemberUpdateVo memberUpdateVo);

    /**
     * 修改会员状态
     * isDisabled 讲师当前状态
     * id 讲师id
     */
    public Result<TbMember> updateMemberStatus(Integer isDisabled, String id);


    /**
     * 使会员type成为老师,通过审核的状态
     * 审核讲师的时候调用该方法
     * 审核通过后,根据当前用户的手机号,使用户成为讲师*/
    public Result<TbMember> updateTypeByMobile(String mobile);


    /************************************前端**************************************/


    /**通过手机号获取验证码
     * 1，通过手机号查询该用户是否已经存在
     * 2.若该用户不存在，则发送验证码*/
    Result getYanZhengMaByMobile(String mobile);

    /**
     * 注册功能
     **/
    Result<TbMember> insertNewTbMember(String mobile, String qianPassword);

    /**web登录
     * 1，通过手机号查询该用户
     * 2.验证密码*/
    Result<TbMember> qianLogin(String mobile,String password);

    /**
     * 个人中心(刚注册的用户信息为空，需要完善)
     * 通过用户手机号查询用户信息
     * 回显到页面*/
    Result<TbMember> selectByMobile(String mobile);

    /**
     * 通过手机号获取验证码用来修改密码
     */
    Result updateYanZhengMaByMobile(String mobile);

    /**
     * 修改密码*/
    Result updatePasswordByMobile(String mobile, String newPassword);

    /**
     * 根据mobile手机号查询member信息，供课程微服务进行调用
     * @param mobile
     * @return
     */
    Result<TbMember> getMemberByMobile(String mobile);
}
